Telegram Group & Telegram Channel
🖥 Задача (с подвохом). Какой результат выдаст этот код?

def extend_list(val, lst=[]):
lst.append(val)
return lst

# Первый вызов: используется список по умолчанию
list1 = extend_list(10)
# Второй вызов: передаём новый пустой список
list2 = extend_list(123, [])
# Третий вызов: снова используется список по умолчанию
list3 = extend_list('a')

print('list1 =', list1)
print('list2 =', list2)
print('list3 =', list3)

🧩 Объяснение

Как работает список по умолчанию
В объявлении функции lst=[] создаётся один список при определении функции, и он используется повторно во всех вызовах, где аргумент lst не передан.

Первый вызов

list1 = extend_list(10)
Параметр lst не передан → используется дефолтный список.

Добавляем 10.
В результате list1 становится [10].

Второй вызов

list2 = extend_list(123, [])
Передаём новый пустой список [].

В этот список добавляется 123.
В итоге list2 становится [123].

Третий вызов

list3 = extend_list('a')
Опять не передан lst → используется тот же дефолтный список, в который уже добавлен 10.

Добавляем 'a'.
Дефолтный список теперь [10, 'a'], и list3 ссылается на этот же список.

Окончательный вывод программы:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

Обратите внимание, что list1 и list3 — это один и тот же дефолтный список, поэтому изменения сохраняются между вызовами.

@Python_Community_ru



tg-me.com/Python_Community_ru/2589
Create:
Last Update:

🖥 Задача (с подвохом). Какой результат выдаст этот код?

def extend_list(val, lst=[]):
lst.append(val)
return lst

# Первый вызов: используется список по умолчанию
list1 = extend_list(10)
# Второй вызов: передаём новый пустой список
list2 = extend_list(123, [])
# Третий вызов: снова используется список по умолчанию
list3 = extend_list('a')

print('list1 =', list1)
print('list2 =', list2)
print('list3 =', list3)

🧩 Объяснение

Как работает список по умолчанию
В объявлении функции lst=[] создаётся один список при определении функции, и он используется повторно во всех вызовах, где аргумент lst не передан.

Первый вызов

list1 = extend_list(10)
Параметр lst не передан → используется дефолтный список.

Добавляем 10.
В результате list1 становится [10].

Второй вызов

list2 = extend_list(123, [])
Передаём новый пустой список [].

В этот список добавляется 123.
В итоге list2 становится [123].

Третий вызов

list3 = extend_list('a')
Опять не передан lst → используется тот же дефолтный список, в который уже добавлен 10.

Добавляем 'a'.
Дефолтный список теперь [10, 'a'], и list3 ссылается на этот же список.

Окончательный вывод программы:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

Обратите внимание, что list1 и list3 — это один и тот же дефолтный список, поэтому изменения сохраняются между вызовами.

@Python_Community_ru

BY Python Community




Share with your friend now:
tg-me.com/Python_Community_ru/2589

View MORE
Open in Telegram


Python Community Telegram | DID YOU KNOW?

Date: |

The seemingly negative pandemic effects and resource/product shortages are encouraging and allowing organizations to innovate and change.The news of cash-rich organizations getting ready for the post-Covid growth economy is a sign of more than capital spending plans. Cash provides a cushion for risk-taking and a tool for growth.

How to Use Bitcoin?

n the U.S. people generally use Bitcoin as an alternative investment, helping diversify a portfolio apart from stocks and bonds. You can also use Bitcoin to make purchases, but the number of vendors that accept the cryptocurrency is still limited. Big companies that accept Bitcoin include Overstock, AT&T and Twitch. You may also find that some small local retailers or certain websites take Bitcoin, but you’ll have to do some digging. That said, PayPal has announced that it will enable cryptocurrency as a funding source for purchases this year, financing purchases by automatically converting crypto holdings to fiat currency for users. “They have 346 million users and they’re connected to 26 million merchants,” says Spencer Montgomery, founder of Uinta Crypto Consulting. “It’s huge.”

Python Community from it


Telegram Python Community
FROM USA